import requests
from moviepy.editor import VideoFileClip

"""
支持视频格式
MP4：常见的视频格式，支持 H.264 编码。
AVI：Audio Video Interleave 格式，是一种流行的多媒体容器格式。
MOV：QuickTime 影片格式，通常用于保存视频、音频、文本和其他媒体数据。
MPEG：Moving Picture Experts Group 定义的一组标准，包括 MPEG-1、MPEG-2、MPEG-4 等。
FLV：Flash 视频格式，常用于网络视频。
WMV：Windows Media 视频格式，由 Microsoft 开发。
MKV：Matroska 视频格式，是一种开放的多媒体容器格式，可以包含多个音频、视频、字幕轨道。
WebM：一种开放的媒体文件格式，通常用于网络流媒体
"""
class AudioExtract:
    def download_video(self,video_url,video_save_path):
        try:
            print("开始下载视频")
            response = requests.get(video_url)
            with open(video_save_path, 'wb') as f:
                f.write(response.content)
            print("视频下载完成")
        except:
            print("视频下载出错了")

    def extract_audio(self,video_path,audio_save_path):
        try:
            print("开始提取音频:" + video_path)
            # 加载视频文件
            video_clip = VideoFileClip("files/" + video_path)
            # 提取音频
            audio_clip = video_clip.audio
            # 保存音频文件
            audio_clip.write_audiofile("files/" + audio_save_path + ".mp3")
            # 关闭视频文件
            video_clip.close()
            print("音频提取成功" + video_path)
            return True
        except:
            print("音频提取出错了" + video_path)
            return False